10 REM COPYRIGHT 1988 COMPUTE! PUBLICATIONS, INC. - ALL RIGHTS RESERVED 20 IFA=0THENA=1:LOAD"BB BARRAGE",8,1 30 POKE51,0:POKE52,32:POKE55,0:POKE56,32:CLR:POKE53281,15:POKE53280,15 40 PRINT"[147] COPYRIGHT 1988 COMPUTE! PUB., INC." 50 PRINTTAB(11)"ALL RIGHTS RESERVED":FORI=1TO1500:NEXT 60 DIMC%(255),C2(24),X(15),Y(15) 70 FORI=4TO16:READC2(I):NEXT 80 DATA1,1,1,1,1,1,3,4,5,6,7,8,9 90 FORI=0TO63:POKE960+I,0:NEXT 100 FORI=0TO23STEP3:READA:POKE960+I,A:NEXT 110 DATA255,129,129,129,129,129,129,255 120 FORI=0TO5:READA:H(I)=A:C%(A+128)=1:NEXT:C%(32)=1 130 DATA32,81,64,93,77,78 140 FORI=48TO53:C%(I)=2:NEXT 150 X(5)=1:X(6)=1:X(7)=1:X(9)=-1:X(10)=-1:X(11)=-1 160 Y(10)=-1:Y(14)=-1:Y(6)=-1:Y(9)=1:Y(13)=1:Y(5)=1 170 U$=CHR$(145):D$=CHR$(17):R$=CHR$(29):L$=CHR$(157):C$=CHR$(147)+D$+D$ 180 C%(145)=-14:C%(17)=-13:C%(29)=-7:C%(157)=-11 190 H$=CHR$(159)+CHR$(19)+D$+D$+D$+D$+D$ 200 FORI=1TO5:READA:C%(A)=1:H$=H$+CHR$(A)+D$+L$:NEXT 210 DATA209,192,221,205,206 220 FORI=3TO10:READA$:C%(ASC(A$))=I:H$=H$+A$+D$+L$:NEXT 230 DATAP,S,L,C,M,O,H,E 240 C%(13)=11 250 X=0:Y=4:CH=H(1):US=51957 260 J=56320:V=53248:POKEV+21,1:POKEV+39,7:POKEV+23,0:POKEV+29,0:POKE2040,15 270 GOSUB560 280 POKEV+1,Y*8+50:T=X*8+24:IFT>255THENPOKEV+16,1:GOTO300 290 POKEV+16,0 300 POKEV,255ANDT 310 A=0:T=PEEK(J):F=16ANDT:JY=15ANDT 320 IFF=16THEN380 330 IFXTHEN360 340 A=C2(Y):IFA=1THENA$=CHR$(H(Y-4)) 350 GOTO430 360 S=Y*40+X+1024:T=CH:IFPEEK(S)=CHTHENT=32 370 POKES,T:IFMFTHENGOSUB580 380 DX=X(JY):DY=Y(JY):IFDXORDYTHEN530 390 GETA$ 400 A=C%(ASC(A$+"@")):IFA=0THEN310 410 IFA<0THENDX=X(-A):DY=Y(-A):GOTO530 420 IFA>2THENPOKE53269,0 430 ONAGOTO450,500,650,660,760,820,840,850,1150,1330,1340 440 GOTO310 450 S=X+Y*40+1024:CH=ASC(A$)-128:T=CH:IFT<0THENT=T+128:CH=T 460 IFX=0THEN310 470 IFPEEK(S)=CHTHENT=32 480 POKES,T:IFMFTHENGOSUB580 490 GOTO310 500 S=X+Y*40+1024:CH=H(VAL(A$)):IFX=0THEN310 510 T=CH:POKES,T:IFMFTHENGOSUB580 520 GOTO310 530 Y=Y+DY:X=X+DX:IFY<0ORY>24THENY=Y-DY 540 IFX>38ORX<0THENX=X-DX 550 GOTO280 560 POKE53281,15:PRINTC$:POKE53281,0:PRINTH$:SYS49161 570 POKE1584,13+MF*128:POKE53269,1:RETURN 580 X1=39-X:Y1=24-Y 590 S1=X1+Y1*40+1024:POKES1,T 600 IFT=77THENT=78:GOTO620 610 IFT=78THENT=77 620 S1=X1+Y*40+1024:POKES1,T 630 S1=X+Y1*40+1024:POKES1,T 640 RETURN 650 SYS49155:CLR:GOTO60 660 SYS49158:PRINTC$"SAVE SCREEN TO DISK" 670 EA=PEEK(253)+PEEK(254)*256+1:SA=US+13 680 HE=INT(EA/256):LE=EA-HE*256:HS=INT(SA/256):LS=SA-HS*256 690 INPUT"ENTER FILENAME ";F$:IFF$=""THENPRINT"ABORTED":GOTO740 700 OPEN1,8,1,F$:POKE193,LS:POKE194,HS 710 POKE174,LE:POKE175,HE 720 SYS62957:CLOSE1 730 PRINT"SAVE COMPLETE" 740 FORI=1TO999:NEXT 750 GOSUB560:GOTO310 760 PRINTC$"LOAD SCREEN FROM DISK" 770 INPUT"ENTER FILENAME ";F$:IFF$=""THENPRINT"ABORTED":GOTO810 780 OPEN1,8,0,F$:POKE185,1:POKE780,0 790 SYS65493:CLOSE1 800 PRINT"LOAD COMPLETE" 810 GOSUB560:GOTO310 820 POKE53281,15:PRINTC$H$:POKE53281,0:X=0:Y=4:CH=H(1) 830 POKE1584,13+MF*128:GOTO280 840 MF=1-MF:POKE1584,13+MF*128:GOTO310 850 SYS49158:PRINTC$" OPTIONS AND COLORS [146]" 860 M$="BACKGROUND":T=0:MN=0:MX=15 870 GOSUB1110:BA=T 880 M$="BORDER":T=11:GOSUB1110:POKEUS+7,T 890 M$="PUCK COLOR":T=14:GOSUB1110:POKEUS+8,T 900 M$="BB COLOR":T=15:GOSUB1110:POKEUS+6,T*16+BA 910 M$="RIGHT GUN COLOR":T=1:GOSUB1110:POKEUS+9,T*16+BA 920 M$="LEFT GUN COLOR":T=1:GOSUB1110:POKEUS+5,T*16+BA 930 M$="GOALS NEEDED TO WIN":T=7:MN=1:GOSUB1110:POKEUS+2,T 940 PRINT"HOW MANY SECONDS UNTIL DESTRUCT MODE?" 950 M$="(-1 FOR NO DESTRUCT)":T=60:MN=-1:MX=900:GOSUB1110 960 IFT<0THENPOKEUS+3,255:GOTO980 970 SE=T*60:T1=INT(SE/256):POKEUS+3,T1:T2=256-SE+T1*256:POKEUS+4,T2 980 M$="FRICTION: 1=ON, 0=OFF":T=1:MN=0:MX=1:GOSUB1110:POKEUS+10,T 990 PRINT"CHOOSE 0 FOR SHARED BB'S" 1000 M$=" 1 FOR POSSESSIVE":T=0:GOSUB1110:POKEUS+12,T 1010 PRINT"MAXIMUM NUMBER OF BB'S IN PLAY" 1020 M$=" ":T=100:MN=10:MX=250:GOSUB1110:POKEUS-1,T+3 1030 M$="RAPID FIRE DELAY":MN=1:MX=100:T=7:GOSUB1110:POKEUS+11,T 1040 PRINT:PRINT"SAVE NEW VERSION TO DISK (Y/N)?" 1050 GETA$:IFA$="N"THEN1100 1060 IFA$<>"Y"THEN1050 1070 FORI=US+13TO53248 1080 IFPEEK(I)=255THENSA=49152:EA=I+1:I=53248 1090 NEXT:GOTO680 1100 GOSUB560:GOTO310 1110 PRINTM$" "T; 1120 FORI=0TOLEN(STR$(T))+1:PRINTL$;:NEXT:INPUTU 1130 IFUMXTHENPRINTU$;:PRINTM$"("MN"-"MX") "T;:GOTO1120 1140 T=U:RETURN 1150 SYS49158:POKEV+21,0:PRINTC$TAB(11)" COMMAND SUMMARY" 1160 PRINT:PRINT" THE FIRST FIVE MENU ITEMS CHANGE THE" 1170 PRINT" DEFLECTOR TYPE." 1180 PRINT:PRINT" THE LETTER COMMANDS ARE:" 1190 PRINT" P - PLAY WITH CURRENT SETTINGS" 1200 PRINT" S - SAVE A SCREEN TO DISK" 1210 PRINT" L - LOAD A SCREEN FROM DISK" 1220 PRINT" C - CLEAR SCREEN OF ANY BARRIERS" 1230 PRINT" M - TOGGLE SYMMETRY MODE" 1240 PRINT" O - CHOOSE OPTIONS" 1250 PRINT" H - SHOW HELP SCREEN" 1260 PRINT" E - EXIT THE PROGRAM" 1270 PRINT: PRINT" COMMANDS CAN BE INVOKED BY PRESSING" 1280 PRINT" THAT KEY, OR BY MOVING THE CURSOR OVER" 1290 PRINT" AND PRESSING THE FIRE BUTTON." 1300 PRINT:PRINT TAB(8)" SPACE BAR TO CONTINUE " 1310 GETA$:IFA$<>" "THEN1310 1320 GOTO260 1330 POKE53269,0:PRINTCHR$(147):END 1340 IFX=0THENF=0:GOTO340 1350 GOTO310